package com.aggregate.pay.transfar.bean;

import java.math.BigDecimal;

import com.aggregate.pay.transfar.enums.PayStatus;
import com.aggregate.pay.transfar.jackson.converter.PayStatusDeserialize;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

/**
 * 商户代付到银行卡API-请求参数
 * @author Moyq5
 * @date 2018年10月25日
 */
public class Pay2BankResult {

	/**
	 * 商品名称
	 */
	@JsonProperty("subject")
	private String goodsName;
	/**
	 * 商品描述
	 */
	@JsonProperty("description")
	private String goodsDescr;
	/**
	 * 业务流水号
	 */
	@JsonProperty("businessnumber")
	private String cusOrderNo;
	/**
	 * 支付订单号
	 */
	@JsonProperty("businessrecordnumber")
	private String orderNo;
	/**
	 * 交易状态：状态: 失败/处理中/成功/已退票
	 */
	@JsonProperty("status")
	@JsonDeserialize(converter = PayStatusDeserialize.class)
	private PayStatus payStatus;
	/**
	 * 交易时间 格式为yyyy-MM-dd HH:mm:ss
	 */
	@JsonProperty("transactiondate")
	private String payTime;
	/**
	 * 订单金额，元
	 */
	@JsonProperty("billamount")
	private BigDecimal amount;
	/**
	 * 交易金额，单位：元
	 */
	@JsonProperty("transactionamount")
	private BigDecimal payAmount;
	/**
	 * 交易类型：代付
	 */
	@JsonProperty("transactiontype")
	private String type;
	/**
	 * 交易创建时间，格式为yyyy-MM-dd HH:mm:ss
	 */
	@JsonProperty("inputdate")
	private String createTime;
	/**
	 * 付款方会员id
	 */
	@JsonProperty("frompartyid")
	private Integer partyId;
	/**
	 * 付款方会员账号
	 */
	@JsonProperty("fromaccountnumber")
	private String accountNo;
	/**
	 * 结果说明
	 */
	@JsonProperty("remark")
	private String remark;
	/**
	 * PC、Android、IOS、WP、EPOS、POS、ETC、PARK、MJ
	 */
	@JsonProperty("terminal")
	private String terminal;
	/**
	 * 签名串字符串
	 */
	@JsonProperty("tf_sign")
	private String sign;
	public Pay2BankResult() {}
	public Pay2BankResult(String src) {}
	public String getGoodsName() {
		return goodsName;
	}
	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}
	public String getGoodsDescr() {
		return goodsDescr;
	}
	public void setGoodsDescr(String goodsDescr) {
		this.goodsDescr = goodsDescr;
	}
	public String getCusOrderNo() {
		return cusOrderNo;
	}
	public void setCusOrderNo(String cusOrderNo) {
		this.cusOrderNo = cusOrderNo;
	}
	public String getOrderNo() {
		return orderNo;
	}
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	public PayStatus getPayStatus() {
		return payStatus;
	}
	public void setPayStatus(PayStatus payStatus) {
		this.payStatus = payStatus;
	}
	public String getPayTime() {
		return payTime;
	}
	public void setPayTime(String payTime) {
		this.payTime = payTime;
	}
	public BigDecimal getAmount() {
		return amount;
	}
	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}
	public BigDecimal getPayAmount() {
		return payAmount;
	}
	public void setPayAmount(BigDecimal payAmount) {
		this.payAmount = payAmount;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getCreateTime() {
		return createTime;
	}
	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}
	public Integer getPartyId() {
		return partyId;
	}
	public void setPartyId(Integer partyId) {
		this.partyId = partyId;
	}
	public String getAccountNo() {
		return accountNo;
	}
	public void setAccountNo(String accountNo) {
		this.accountNo = accountNo;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public String getTerminal() {
		return terminal;
	}
	public void setTerminal(String terminal) {
		this.terminal = terminal;
	}
	public String getSign() {
		return sign;
	}
	public void setSign(String sign) {
		this.sign = sign;
	}
	
}
